tree grammar testACA;

SERVICE :	'service';
COMPONENT :	 'component';
COMPOSITE :		'composite';
ASSEMBLY :	'assembly';
USING	:	'using';
LANG	:	'@lang';
ID	:	'id';
IN	:	'in';
AS	:	'as';
MODULE	:	'module';
PROPERTY:	'property';
METHOD	:	'method';
REFINES	:	'refines';
REFINE	:	'refine';
INCLUDES:	'includes';
INCLUDE	:	'include';
PROVIDE	:	'provide';
REQUIRE :	'require';
EXPORT	:	'export';
EXPORTATIONS : 'exportations';
BIND : 		'bind';
BINDS :		 'binds';
DEFINITIONS :	 'uses';
DEFINITION :	'use';
BEHAVIOR: 'behavior';
STATE : 'state';
STATES : 'states';
ALLOW : 'allow';
TRANSITIONS : 'transitions';
TRANSITION : 'transition';
FROM : 'from';
TO : 'to';
WITH : 'with';
WHEN : 'when';
DEFAULT : 'default';
CLIENT : 'client';
PROVIDER : 'provider';
BY : 'by';
FORALL : 'forall';
EXISTS : 'exists';
NAMING : 'naming';
IMPLEMENTS : 'implements';
COREINTERFACE : 'coreinterface';
PERCOLATOR : 'percolator';
PERCOLATORS : 'percolators';
READ : 'read';
WRITE : 'write';
READWRITE : 'readwrite';
NULL : 'null';
INVARIANT : 'invariant';
PRE : 'pre';
POST : 'post';
FAIL: 'fail';
TYPEINT : 'int';
TYPEBOOLEAN : 'boolean'| 'bool';
TYPEVOID : 'void';
TYPEREAL : 'real';
TYPESTRING : 'String' | 'string';
EQ : '=' |'==';
NEQ : '!=' |'<>';
LEQ : '<=';
LT : '<';
GT : '>';
GEQ : '>=';
ATPRE : '@pre';
RETURN : '@return';
NOT : '!';
AND : '&&';
OR : '||';
XOR : '^';
IMPLY : '=>';
EQUIVALENCE : '<=>';
ADD : '+';
MINUS : '-';
TIMES : '*';
QUO : '/';
MOD : '%';
BRACEO : '(';
BRACEC : '}';
BRACKETO : '(';
BRACKETC : ')';
BRACKO : '[';
BRACKC : ']';
COMMA : ',';
SEMICOLON : ';';
DOT : '.';
SHARP : '#';
COLON : ':';
DOUBLEDOT : '..';
TRUE : 'true';
FALSE : 'false';
